package edu.bbu.license.client.android.services.file.worker;

import java.util.List;

import edu.bbu.license.client.android.services.exceptions.DuplicationException;
import edu.bbu.license.client.android.services.exceptions.FormatException;
import edu.bbu.license.client.android.services.exceptions.IdentificationException;
import edu.bbu.license.client.android.services.exceptions.NetworkException;
import edu.bbu.license.client.android.services.exceptions.UnknownException;
import edu.bbu.license.client.android.services.file.model.LocalFile;
import edu.bbu.license.client.android.services.file.model.ServerFile;

public interface FileService {

	public LocalFile getLocalRootDirectory() throws IdentificationException;
	public List<LocalFile> getLocalDirectoryContent(LocalFile directory) throws IdentificationException;
	
	public ServerFile getServerRootDirectory() throws IdentificationException, NetworkException; 
	public List<ServerFile> getServerDirectoryContent(ServerFile directory) throws IdentificationException, NetworkException;
	public List<ServerFile> getServerFileVersionsContent(ServerFile file) throws IdentificationException, NetworkException;
	
	public void createLocalDirectory(LocalFile directory) throws IdentificationException, FormatException, DuplicationException, UnknownException;
	public void createServerDiretory(ServerFile directory) throws IdentificationException, FormatException, DuplicationException, UnknownException, NetworkException;
	
	public void deleteLocalFile(LocalFile file) throws IdentificationException, UnknownException;
	public void deleteServerFile(ServerFile file) throws IdentificationException, NetworkException, UnknownException;
}
